import { isFunction } from '@/utils/validate'

/**
 * 性别
 */
const PostStatusEnum = {
  DRAFT: {
    label: '草稿',
    value: 0,
    tag: 'warn',
  },
  PUBLISHED: {
    label: '已发布',
    value: 100,
    tag: 'success',
  },

  /**
   * 获取所有的枚举
   * @return {*[]}枚举数组
   */
  allEnums() {
    let enums = []
    for (let key in PostStatusEnum) {
      if (!isFunction(PostStatusEnum[key])) {
        enums.push(PostStatusEnum[key])
      }
    }
    return enums
  },
  /**
   * 根据 label 获取 枚举
   * @param label label
   * @return {*} 对应的枚举
   */
  getEnumByLabel(label) {
    for (let key in PostStatusEnum) {
      if (PostStatusEnum[key].label === label) {
        return PostStatusEnum[key]
      }
    }
    return {}
  },

  /**
   * 根据 label 获取 枚举
   * @param value value
   * @return {*} 对应的枚举
   */
  getEnumByValue(value) {
    for (let key in PostStatusEnum) {
      if (PostStatusEnum[key].value === value) {
        return PostStatusEnum[key]
      }
    }
    return {}
  },
}
// 设置当前对象只读
Object.freeze(PostStatusEnum)

export default PostStatusEnum
